home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / email / iterators.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  2KB  |  58 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. __all__ = [
  5.     'body_line_iterator',
  6.     'typed_subpart_iterator',
  7.     'walk']
  8. import sys
  9. from cStringIO import StringIO
  10.  
  11. def walk(self):
  12.     yield self
  13.     if self.is_multipart():
  14.         for subpart in self.get_payload():
  15.             for subsubpart in subpart.walk():
  16.                 yield subsubpart
  17.             
  18.         
  19.     
  20.  
  21.  
  22. def body_line_iterator(msg, decode = False):
  23.     for subpart in msg.walk():
  24.         payload = subpart.get_payload(decode = decode)
  25.         if isinstance(payload, basestring):
  26.             for line in StringIO(payload):
  27.                 yield line
  28.             
  29.     
  30.  
  31.  
  32. def typed_subpart_iterator(msg, maintype = 'text', subtype = None):
  33.     for subpart in msg.walk():
  34.         if subpart.get_content_maintype() == maintype:
  35.             if subtype is None or subpart.get_content_subtype() == subtype:
  36.                 yield subpart
  37.             
  38.         subpart.get_content_subtype() == subtype
  39.     
  40.  
  41.  
  42. def _structure(msg, fp = None, level = 0, include_default = False):
  43.     if fp is None:
  44.         fp = sys.stdout
  45.     
  46.     tab = ' ' * level * 4
  47.     print >>fp, tab + msg.get_content_type(),
  48.     if include_default:
  49.         print >>fp, '[%s]' % msg.get_default_type()
  50.     else:
  51.         print >>fp
  52.     if msg.is_multipart():
  53.         for subpart in msg.get_payload():
  54.             _structure(subpart, fp, level + 1, include_default)
  55.         
  56.     
  57.  
  58.